HAL USART macro migration

This section provides information about the HAL USART macro migration.

Note

The following USART macros have been transitioned to inline functions, enhancing efficiency and type safety.

Related concept: Removal of hardware-related macros in HAL2.

HAL USART enable/disable

HAL1

HAL2

#define __HAL_USART_ENABLE(__HANDLE__)
#define __HAL_USART_DISABLE(__HANDLE__)
__STATIC_INLINE void LL_USART_Enable(USART_TypeDef *p_usart)
__STATIC_INLINE void LL_USART_Disable(USART_TypeDef *p_usart)

HAL USART get flag/interrupt

HAL1

HAL2

#define __HAL_USART_GET_IT(__HANDLE__, __INTERRUPT__)
/*OR*/
#define __HAL_USART_GET_FLAG(__HANDLE__, __FLAG__)
__STATIC_INLINE uint32_t LL_USART_IsActiveFlag(const USART_TypeDef *p_usart, uint32_t mask)

HAL USART one bit sample enable/disable macro

HAL1

HAL2


#define __HAL_USART_ONE_BIT_SAMPLE_DISABLE(__HANDLE__, __INTERRUPT__)
#define __HAL_USART_ONE_BIT_SAMPLE_ENABLE(__HANDLE__, __FLAG__)

Removed in HAL2 and replaced by the static inline functions:

__STATIC_INLINE void LL_USART_DisableOneBitSample(USART_TypeDef *p_usart)
__STATIC_INLINE void LL_USART_EnableOneBitSample(USART_TypeDef *p_usart)

General HAL USART clear flags

HAL1

HAL2

#define __HAL_USART_CLEAR_FLAG(__HANDLE__, __FLAG__)
/* OR */
#define __HAL_USART_CLEAR_IT(__HANDLE__, __IT_CLEAR__)
__STATIC_INLINE void LL_USART_ClearFlag(USART_TypeDef *p_usart, uint32_t mask)

Specific HAL USART clear flags

HAL1

HAL2

#define __HAL_USART_CLEAR_PEFLAG(__HANDLE__)
#define __HAL_USART_CLEAR_FEFLAG(__HANDLE__)
#define __HAL_USART_CLEAR_NEFLAG(__HANDLE__)
#define __HAL_USART_CLEAR_OREFLAG(__HANDLE__)
#define __HAL_USART_CLEAR_IDLEFLAG(__HANDLE__)
#define __HAL_USART_CLEAR_TXFECF(__HANDLE__)
#define __HAL_USART_CLEAR_UDRFLAG(__HANDLE__)
__STATIC_INLINE void LL_USART_ClearFlag_PE(USART_TypeDef *p_usart)
__STATIC_INLINE void LL_USART_ClearFlag_FE(USART_TypeDef *p_usart)
__STATIC_INLINE void LL_USART_ClearFlag_NE(USART_TypeDef *p_usart)
__STATIC_INLINE void LL_USART_ClearFlag_ORE(USART_TypeDef *p_usart)
__STATIC_INLINE void LL_USART_ClearFlag_IDLE(USART_TypeDef *p_usart)
__STATIC_INLINE void LL_USART_ClearFlag_TXFE(USART_TypeDef *p_usart)
__STATIC_INLINE void LL_USART_ClearFlag_UDR(USART_TypeDef *p_usart)

HAL USART get interrupt source

HAL1

HAL2

#define __HAL_USART_GET_IT_SOURCE(__HANDLE__, __INTERRUPT__)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_IDLE(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RXNE_RXFNE(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TC(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TXE_TXFNF(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_PE(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_CM(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RTO(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_EOB(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TXFE(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RXFF(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_LBD(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_ERROR(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_CTS(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_WKUP(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TXFT(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_TCBGT(const USART_TypeDef *p_usart)
__STATIC_INLINE uint32_t LL_USART_IsEnabledIT_RXFT(const USART_TypeDef *p_usart)

HAL USART enable interrupt

In HAL2, this macro is transitioned to equivalent static inline functions in the LL (Low Layer) to enable interrupts through the control registers CR1, CR2, and CR3, each of which contains a specific set of interrupts.

HAL1

HAL2

#define __HAL_USART_ENABLE_IT(__HANDLE__, __INTERRUPT__)
__STATIC_INLINE void LL_USART_EnableIT_CR1(USART_TypeDef *p_usart, uint32_t mask)
__STATIC_INLINE void LL_USART_EnableIT_CR2(USART_TypeDef *p_usart, uint32_t mask)
__STATIC_INLINE void LL_USART_EnableIT_CR3(USART_TypeDef *p_usart, uint32_t mask)

HAL USART disable interrupt

In HAL2, this macro is transitioned to equivalent static inline functions in the LL (Low Layer) to disable interrupts via the control registers CR1, CR2, and CR3, each of which contains a specific set of interrupts.

HAL1

HAL2

#define __HAL_USART_DISABLE_IT(__HANDLE__, __INTERRUPT__)
__STATIC_INLINE void LL_USART_DisableIT_CR1(USART_TypeDef *p_usart, uint32_t mask)
__STATIC_INLINE void LL_USART_DisableIT_CR2(USART_TypeDef *p_usart, uint32_t mask)
__STATIC_INLINE void LL_USART_DisableIT_CR3(USART_TypeDef *p_usart, uint32_t mask)

HAL USART send request

HAL1

HAL2

#define __HAL_USART_SEND_REQ(__HANDLE__, __REQ__)
HAL_USART_SendRequest(hal_usart_handle_t *husart, hal_uart_request_t request)

HAL USART reset handle state

HAL1

HAL2

#define __HAL_USART_RESET_HANDLE_STATE(__HANDLE__)

Removed ( Use HAL_USART_DeInit() instead when you need to reset all states)